#include <stdio.h>
#include "stack_1.h"
int main() {
	int val;
	stack stk = {0};
	stack_init(&stk);	//首先对栈初始化
	printf("数字个数是%d\n", stack_size(&stk));	//获得数字个数并显示
	printf("判断空的结果是%d\n", stack_empty(&stk));//判断栈是否空并显示结果
	printf("判断满的结果是%d\n", stack_full(&stk));	//判断栈是否满并显示结果
	printf("\n");

	stack_push(&stk, 10);
	stack_push(&stk, 20);
	stack_push(&stk, 30);
	printf("数字个数是%d\n", stack_size(&stk));	//获得数字个数并显示
	printf("判断空的结果是%d\n", stack_empty(&stk));//判断栈是否空并显示结果
	printf("判断满的结果是%d\n", stack_full(&stk));	//判断栈是否满并显示结果
	printf("\n");

	stack_push(&stk, 40);
	stack_push(&stk, 50);
	printf("数字个数是%d\n", stack_size(&stk));	//获得数字个数并显示
	printf("判断空的结果是%d\n", stack_empty(&stk));//判断栈是否空并显示结果
	printf("判断满的结果是%d\n", stack_full(&stk));	//判断栈是否满并显示结果
	printf("\n");

	stack_top(&stk, &val);
	printf("最后的数字是%d\n", val);
	while(1) {
		if(!stack_pop(&stk, &val)) {	//不能从栈里获得数字的情况
			break;
		}
		printf("%d ", val);
	}
	printf("\n");
	printf("\n");
	printf("数字个数是%d\n", stack_size(&stk));	//获得数字个数并显示
	printf("判断空的结果是%d\n", stack_empty(&stk));//判断栈是否空并显示结果
	printf("判断满的结果是%d\n", stack_full(&stk));	//判断栈是否满并显示结果

	stack_deinit(&stk);	//最后对栈做清理

	return 0;
}
